using Newtonsoft.Json;

namespace QiaoAiGRPCService.Models.Ysb.Json
{
    public class JsonYsbH5OrderQueryData
    {
        [JsonProperty("return_code")]
        public string ReturnCode { get; set; } = "";

        [JsonProperty("return_msg")]
        public string ReturnMsg { get; set; } = "";

        [JsonProperty("total_fee")]
        public string TotalFee { get; set; } = "";

        [JsonProperty("refundAmount")]
        public string RefundAmount { get; set; } = "";

        [JsonProperty("trans_status")]
        public string TransStatus { get; set; } = "";

        [JsonProperty("trans_status_desc")]
        public string TransStatusDesc { get; set; } = "";

        [JsonProperty("fund_type")]
        public string FundType { get; set; } = "";

        [JsonProperty("trace_no")]
        public string TraceNo { get; set; } = "";

        [JsonProperty("out_trade_id")]
        public string OutTradeId { get; set; } = "";

        [JsonProperty("trade_id")]
        public string TradeId { get; set; } = "";

        [JsonProperty("trans_datetime")]
        public string TransDatetime { get; set; } = "";

        [JsonProperty("channel_type")]
        public string ChannelType { get; set; } = "";

        [JsonProperty("remark")]
        public string Remark { get; set; } = "";

        [JsonProperty("hanglingCharge")]
        public string HanglingCharge { get; set; } = "";

        [JsonProperty("channel_type_name")]
        public string ChannelTypeName { get; set; } = "";

        [JsonProperty("finish_datetime")]
        public string FinishDatetime { get; set; } = "";

        [JsonProperty("platformFee")]
        public string PlatformFee { get; set; } = "";

        [JsonProperty("bussinessLine")]
        public string BussinessLine { get; set; } = "";

        [JsonProperty("t0Flag")]
        public string T0Flag { get; set; } = "";

        [JsonProperty("mchntCnNm")]
        public string MchntCnNm { get; set; } = "";

        [JsonProperty("mchntCd")]
        public string MchntCd { get; set; } = "";

        [JsonProperty("payer_info")]
        public string PayerInfo { get; set; } = "";

        [JsonProperty("trans_type")]
        public string TransType { get; set; } = "";

        public YsbH5OrderQueryDataResponse ToYsbH5OrderQueryDataResponse()
        {
            YsbH5OrderQueryDataResponse response = new YsbH5OrderQueryDataResponse
            {
                ReturnCode = ReturnCode,
                ReturnMsg = ReturnMsg,
                TotalFee = TotalFee,
                RefundAmount = RefundAmount,
                TransStatus = TransStatus,
                TransStatusDesc = TransStatusDesc,
                FundType = FundType,
                TraceNo = TraceNo,
                OutTradeId = OutTradeId,
                TradeId = TradeId,
                TransDatetime = TransDatetime,
                ChannelType = ChannelType,
                Remark = Remark,
                HanglingCharge = HanglingCharge,
                ChannelTypeName = ChannelTypeName,
                FinishDatetime = FinishDatetime,
                PlatformFee = PlatformFee,
                BussinessLine = BussinessLine,
                T0Flag = T0Flag,
                MchntCnNm = MchntCnNm,
                MchntCd = MchntCd,
                PayerInfo = PayerInfo,
                TransType = TransType
            };
            return response;
        }
    }
}
